// Task异步执行
// 1.异步任务的实现过于复杂,我们使用floktake中的Task来演示
// 2.Folktale一个标准的函数式编程库
// 2.1:和loadsh,ramda不同的是,他没有提供很多功能函数
// 2.2:只提供了一些函数式处理的操作,例如:compose,curry等,一些函子Task,Either,MatBe等

//folktale中的compose,curry
const { compose, curry } = require("folktale/core/lambda");
const { first, toUpper } = require("lodash/fp");

//这里的2代表传入几个参数
let f = curry(2, (x, y) => {
  return x + y;
});

console.log(f(1, 2));
console.log(f(1)(2));

//等同于lodash中的flowRight
let f1 = compose(toUpper, first);
console.log(f1(["one", "two"]));
